Drawing method

ABSTRACT

A drawing system and method is provided for drawing objects and maps in a virtual world editor. The drawing method performs object checking to determine if a particular object can be drawn in the virtual world editor. When drawing the object, if the drawing method for the object does not satisfy a specific condition, the method will not allow the object to “set.” If the object satisfies the specific condition, the method will allow the object to set and be drawn onto the terrain. If the object is obstructed as it is being drawn, the drawing system will adjust the object so it is appropriately drawn in the software environment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority from provisionalapplication no. 61/496,958 filed Jun. 14, 2011, the contents of whichare incorporated herein by reference.

BACKGROUND

Traditional video software systems allow an object to move in a 2-D or3-D environment. In traditional 2-D environments, the object will benavigated by a user where the user can move the object in the X and Ydirections. As the object moves in the environment, the object canencounter certain objects disposed within the virtual environment. Forexample, the object may encounter a hill, bridge, river, wall, or evenanother object.

Most software environments create these terrains during development ofthe environment. That is, a developer will create the various maps andobjects on the map that a main object will encounter. However, somesoftware environments allow users to be their own developer and allowthem to create particular objects and entire environment terrains.

In software environments that allow the user to create their own objectsor environment maps, the software environment will typically allow usersto select objects to place onto the terrain or to “draw” the objects onthe screen. This allows the user to draw particular objects that will bea part of the environment terrain.

However, this “free drawing” mode allows a user to create any objectsthat may not make sense in certain portions of the terrain or may causethe software environment to function unnaturally. As such, it isdesirable to have a drawing method that takes into account thesedrawbacks.

BRIEF SUMMARY

A drawing system and method is provided for drawing objects and maps ina virtual world editor. The drawing method performs object checking todetermine if a particular object can be drawn in the virtual worldeditor. When drawing the object, if the drawing method for the objectdoes not satisfy a specific condition, the method will not allow theobject to “set.” If the object satisfies the specific condition, themethod will allow the object to set and be drawn onto the terrain. Ifthe object is obstructed as it is being drawn, the drawing system willadjust the object so it is appropriately drawn in the softwareenvironment.

A drawing method for drawing objects on a display of a user interfacedevice is provided. The drawing method comprises setting a drawing startpoint for drawing a drawing object, setting a drawing end point fordrawing the drawing object, drawing the drawing object from the drawingstart point towards the drawing end point, determining if a path fromthe drawing start point to the drawing end point for drawing the drawingobject is obstructed, and preventing the drawing object from being drawnto the drawing end point if the path for drawing the drawing object isobstructed.

The drawing method further comprises positioning a first object of afirst type on the display, positioning a second object of a second typeon the display, the second object being at a different position than thefirst object, and positioning a third object of the first type on thedisplay, the third object being at a different position than both thefirst and second objects, where the first and second types are differentfrom each other.

A non-transitory computer-readable storage medium is provided havingcomputer readable code embodied therein for executing the drawing methoddescribed in the preceding paragraphs.

A user interface apparatus is also provided where the user interfaceapparatus comprises a display for drawing a drawing object, a memory forstoring a program for drawing the drawing object on the display, adrawing device for drawing the drawing object on the display, and one ormore processors configured to draw the drawing object on the display.The one or more processors are further configured to set a drawing startpoint for drawing a drawing object, set a drawing end point for drawingthe drawing object, draw the drawing object from the drawing start pointtowards the drawing end point, determine if a path from the drawingstart point to the drawing end point for drawing the drawing object isobstructed, and prevent the drawing object from being drawn to thedrawing end point if the path for drawing the drawing object isobstructed.

The one or more processors in the user interface apparatus are furtherconfigured to position a first object of a first type on the display,position a second object of a second type on the display, the secondobject being at a different position than the first object, and positiona third object of the first type on the display, the third object beingat a different position than both the first and second objects, wherethe first and second types are different from each other.

Another drawing method for drawing objects on a display of a userinterface device is provided. The drawing method comprising drawing agrid-shaped area on the display having a horizontal and a verticalcoordinate space, positioning a first object having a first type in afirst coordinate space in the grid-shaped area, positioning a secondobject having a second type in a second coordinate space in thegrid-shaped area, positioning a third object having the first type in athird coordinate space in the grid-shaped area, drawing a drawing objectfrom the first coordinate space to the third coordinate space, andpreventing the drawing object from being drawn to the third coordinatespace if a path for drawing the drawing object is obstructed.

In a non-limiting, example embodiment the first object represents thedrawing start point and the third object represents the drawing endpoint, and the second object is in a path between the first and thirdobject.

In another non-limiting, example embodiment the drawing object will beprevented from drawing from the first object to the third object if anobject of a different type obstructs a path between the first object andthe third object.

In a further non-limiting, example embodiment the drawing object willnot draw past the second object as the drawing object is being drawntoward the third object.

In another non-limiting, example embodiment the drawing of the drawingobject will be completed when the drawing object draws from the firstobject to the third object and the first and third objects are of a sametype.

In yet another non-limiting, example embodiment the first object, thesecond object, and the third object are selected from a menu.

In another non-limiting, example embodiment the drawing object will notbe drawn past the second coordinate space when the first object and thesecond object are of a different type.

In other non-limiting, example embodiments multiple drawing objects canbe drawn in the grid-shaped area, and after all drawing objects aredrawn in the grid-shaped area, the grid-shaped area is removed from thedisplay and the drawing objects are superimposed on a background of agame image.

In yet another non-limiting, example embodiment one or more playercharacters traverse the multiple drawing objects in a game using thebackground and the multiple drawing objects in the game image.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is an exemplary external view of an exemplary illustrativenon-limiting game apparatus for executing a game program;

FIG. 1B is a block diagram showing an internal structure of theexemplary game apparatus;

FIG. 2 illustrates a diagram example of an embodiment of the presentsystem;

FIG. 3 illustrates another diagram example of an embodiment of thepresent system;

FIG. 4 illustrates another diagram example of an embodiment of thepresent system;

FIG. 5 illustrates another diagram example of an embodiment of thepresent system;

FIG. 6 illustrates another diagram example of an embodiment of thepresent system;

FIG. 7 illustrates an application flowchart for the present system;

FIGS. 8A-B illustrate examples of an embodiment of the present system;

FIGS. 9A-B illustrate another example of an embodiment of the presentsystem; and

FIGS. 10A-B illustrate another example of an embodiment of the presentsystem.

DETAILED DESCRIPTION

In FIG. 1A, is an exemplary illustrative non-limiting user interfaceapparatus 1 that can be used for implementing the drawing methoddescribed above. In one exemplary illustrative non-limitingimplementation, system 10 may comprise a Nintendo DS portable handheldvideogame system including a 3D graphics generator capable of generatingcomplex texture-mapped displays of characters interacting with a 3Dworld from any desired viewpoint.

In the exemplary non-limiting illustrative implementation shown, userinterface device 1 includes two liquid crystal displays (LCDs) 11 and12, which are accommodated in a housing 18 so as to be located atpredetermined positions. Specifically, in the case where the firstliquid crystal display (hereinafter, referred to as the “LCD”) 11 andthe second LCD 12 are accommodated in a vertically stacking manner, thehousing 18 includes a lower housing 18 a and an upper housing 18 b. Theupper housing 18 b is pivotably supported by a part of an upper surfaceof the lower housing 18 a. The upper housing 18 b has a planar shapeslightly larger than a planar shape of the first LCD 11, and has anopening for exposing a display screen of the first LCD 11 on one mainsurface thereof. The lower housing 18 a has a planar shape longer in thehorizontal direction than the planar shape of the upper housing 18 b,and has an opening for exposing a display screen of the second LCD 12 atapproximately the center of the lower housing 18 b in the horizontaldirection. One of two side sections of the lower housing 18 ainterposing the second LCD 12 has speaker holes of a speaker 15, andeach of the two side sections has an operation switch section 14.

The operation switch section 14 includes an operation switch (button A)14 a and an operation switch (button) 14 b which are attached to onemain surface of the side section of the lower housing 18 a which is tothe right of the second LCD 12 as seen in FIG. 1A. The operation switchsection 14 also includes a direction indication switch (cross key) 14 c,a start switch 14 d, and a select switch 14 e which are attached to onemain surface of the side section of the lower housing 18 a to the leftof the second LCD 12 as seen in FIG. 1A. The lower housing 18 a furtherincludes side surface switches 14 f and 14 g, which are respectivelyprovided on the upper surfaces of the side sections of the lower housing18 a to the left and to the right of the second LCD 12. When necessary,further operation switches may be provided, or unnecessary operationswitches may be removed.

On an upper surface (the surface entirely shown in FIG. 1A) of thesecond LCD 12, a touch panel 13 (surrounded by the dashed line in FIG.1A) is provided. The touch panel 13 is of, for example, any of aresistance film system, an optical (infrared) system, and a staticcapacitance coupling system. When a stylus 16 (or a finger) presses,moves on, or touches an upper surface of the touch panel 13, thecoordinate position of the stylus 16 is detected and the coordinate datais output.

In the vicinity of a side surface of the upper housing 18 b, anaccommodation hole (an area represented by the two-dot chain line inFIG. 1A) is formed when necessary for accommodating the stylus 16 foroperating the touch panel 13. In a part of one surface of the lowerhousing 18 a, a cartridge insertion section (an area represented by theone-dot chain line in FIG. 1A) is formed, for detachably accepting agame cartridge 17 (hereinafter, referred to simply as the “cartridge17”) having a built-in memory (e.g., a ROM) which stores a game program.The cartridge 17 is a memory medium storing a game program, and is, forexample, a nonvolatile semiconductor memory such as a ROM or a flashmemory. A part of the lower housing 18 b inner to the cartridgeinsertion section has a built-in connecter (see FIG. 1B) to beelectrically connected with the cartridge 17. The lower housing 18 a (orthe upper housing 18 b) accommodates an electronic circuit board havingvarious electronic components such as a CPU and the like mountedthereon. The memory medium for storing the game program is not limitedto the nonvolatile semiconductor memory, but may be a CD-ROM, a DVD, ora similar optical disc-shaped memory medium.

Next, with reference to FIG. 1B, an internal structure of the userinterface apparatus 1 will be described. FIG. 1B is a block diagramshowing the internal structure of the user interface apparatus 1.

In FIG. 1B, an electronic circuit board accommodated in the housing 18has a CPU core 21 mounted thereon. The CPU core 21 is connected to theconnector 28, to be connected to the cartridge 17, via a predeterminedbus, and the CPU core 21 is also connected to an input/output interface(I/F) circuit 27, a first graphic processing unit (first GPU) 24, asecond graphic processing unit (second GPU) 26, and a working RAM (WRAM)22.

To the connecter 28, the cartridge 17 is detachably connectable. Asdescribed above, the cartridge 17 is a memory medium for storing a gameprogram. Specifically, the cartridge 17 has a ROM 171 storing the gameprogram and a RAM 172 rewritably storing backup data mounted thereon.The game program stored in the ROM 171 in the cartridge 17 is loaded onthe WRAM 22, and the game program loaded on the WRAM 22 is executed bythe CPU core 21. Temporary data and data for generating an image whichare obtained by the CPU core 21 through execution of the game programare stored in the WRAM 22.

As described above, the ROM 171 stores a game program, which is a groupof instructions and a group of data in the format executable by thecomputer of the user interface apparatus 1, especially by the CPU core21. The game program is read into and executed by the WRAM 22 whennecessary. In this embodiment, the game program and the like arerecorded in the cartridge 17, but the game program and the like may besupplied by another medium or via a communication network.

The I/F circuit 27 is connected to the touch panel 13, the operationswitch section 14, and the speaker 15. The speaker 15 is located at aposition just inside the speaker holes described above.

The first GPU 24 is connected to a first video RAM (hereinafter,referred to the “VRAM”) 23, and the second GPU 26 is connected to asecond VRAM 25. In accordance with an instruction from the CPU core 21,the first GPU 24 generates a first game image based on data forgenerating an image stored in the WRAM 22 and draws the first game imagein the first VRAM 23. In accordance with an instruction from the CPUcore 21, the second GPU 26 generates a second game image based on datafor generating an image stored in the WRAM 22 and draws the second gameimage in the second VRAM 25.

The first GPU 24 is connected to the first LCD 11, and the second GPU 26is connected to the second LCD 12. In accordance with an instructionfrom the CPU core 21, the first GPU 24 outputs the first game imagedrawn in the first VRAM 23 to the first LCD 11. The first LCD 11displays the first game image which is output from the first GPU 24. Inaccordance with an instruction from the CPU core 21, the second GPU 26outputs the second game image drawn in the second VRAM 25 to the secondLCD 12. The second LCD 12 displays the second game image which is outputfrom the second GPU 26.

The I/F circuit is a circuit for exchanging data between externalinput/output devices such as the touch panel 13, the operation switchsection 14, the speaker 15 and the like, and the CPU core 21. The touchpanel 13 (including a device driver for the touch panel 13) has acoordinate system corresponding to a coordinate system of the secondVRAM 25, and outputs coordinate position data corresponding to theposition which is input (indicated) by the stick 16 or the like. Theresolution of the display screen of the second LCD 12 is, for example,256 dot×192 dots, and the detection precision of the touch panel 13 is256 dots×192 dots in correspondence with the resolution of the displayscreen of the second LCD 12. The precision detection of the touch panel13 may be lower or higher than the resolution of the display screen ofthe second LCD 12.

The virtual world editor, in an exemplary embodiment, is implemented inthe user interface apparatus as described above. However, it should beappreciated that the virtual world editor is not limited to thisapparatus and can be implemented on any computing device, such as apersonal computer, for example.

The following system can edit the virtual world using a grid display toplace objects on and create connections between the objects. However, itshould be appreciated that the editor is not limited to a grid and canbe any sort of display for editing visual objects and visual terrains.

FIG. 2 shows an example diagram of a grid display 10 for adding andediting virtual objects in a virtual world editor. In this grid-shapeddisplay 10, various objects are placed onto the display 10 so that auser can add them to the virtual world environment. Virtual ObjectsOBJ1-4 are shown being placed in the upper left hand portion of thedisplay 10. An object can be selected from a menu of objects and can beplaced onto a position on the display 10. This can be accomplished byentering the menu (or inventory of objects) by clicking on a menu buttonusing a stylus and then selecting the particular object to be placed onthe screen. Once the object is selected, a user can press and releasethe object onto the display 10 by tapping the area where the user wouldlike to dispose the object. So for example, the user may select VirtualObject OBJ1 from an object inventory and then by tapping the display theuser can dispose Virtual Object OBJ1 onto the display.

Virtual Objects R1-R4 and B1-B3 are also disposed on the display 10 andcan represent drawing starting and ending points. In an exemplaryembodiment, a user can use a drawing object, such as the stylus shown inFIG. 5, for example, and click on a virtual object to begin drawing froma starting point to an ending point. For example, a user can begindrawing a line by tapping object R1. By dragging the stylus across thedisplay 10, the line will extend from R1 towards a desired ending point.For example, the user can draw a line to R2 by tapping on R1 anddragging the stylus to R2. Put another way, the user can press theobject R1 and drag across the display 10 to form a line to the objectR2. As explained below, as long as certain conditions are met, the linewill “set” and draw at R2 and a line will be formed between R1 and R2.It should also be appreciated that some objects can be placed anywhereon the display without any particular base support (i.e. floating).

In the drag based drawing approach, certain restrictions can be imposedupon the drag depending upon the object starting point. For example, ina non-movement restriction based starting point, the user can press anddrag a line in both the horizontal and vertical directions in a freeform drag manner. In a drag where the starting object type restrictsdrawing to a horizontal or vertical movement, the movement will berestricted to the “left” or “right” directions and the “up” or “down”directions, respectively. As explained below, other restrictions on thenavigation of the dragged line also restrict how the line is drawn.

It should also be appreciated that in addition to adding and drawingobjects in the virtual environment, objects can be modified as well. Forexample, objects can be erased, moved, and even flipped.

The erase tool removes and erases an object from the display 10. In gridspaces that contain an object, a user can use the stylus, for example,and press and release the stylus on the portion of the grid thatcontains the object. So for example, if a user clicked on Object OBJ1when using the erase tool, the Object OBJ1 will be removed from thedisplay. In another example embodiment, if the display 10 contains abase floor (which is a special object type in the virtual worldenvironment), and a surface object is erased from the base floor, thedefault base floor object included in a template re-appears. That is,the base floor portion does not actually erase but reverts back to atemplate base floor portion.

Another method of using the erase tool relates to dragging the drawingobject across the display 10 instead of pressing and releasing. Whenperforming a drag-based erase, the stylus can be pressed, held, anddragged from a grid position over the display 10. A visible select boxdraws over the objects that the stylus completely overlaps as it isbeing dragged. Upon release, any object which is capable of being erasedis removed from the canvas. In an example embodiment, the select box isa rectangular shape. Of course, the select box is not limited to arectangular shape and can be a square, circle, or any particularpolygon.

Another manipulation technique involves moving objects. The move toolallows objects to be translated around the canvas. One method of movingan object involves a single click on the object on the display 10. Sofor example, if the Object OBJ1 is clicked on when the move tool isactivated, the Object OBJ1 is highlighted indicating that it iscurrently selected. The user can then drag the Object OBJ1 using thestylus and the Object OBJ1 will follow the movement of the stylus acrossthe display 10. When the user releases the Object OBJ1, provided theobject is released on a valid space on the display 10, the object ismoved to the new position. If the grid space on the display 10 isconsidered invalid, the object would return to the location it occupiedbefore the attempt to move the object. In another example embodiment,regarding objects that are considered base floors, if a surface objectis not a default object from the base floor, the object clicked onbecomes highlighted indicating that it is currently selected. It canthen be moved in the same manner described above.

Another technique using the move tool involves a dragging technique.Similar to the dragging technique for the erase tool, the user can dragthe stylus across the display 10 by pressing, holding, and dragging froma grid position over the display 10. A visible select box draws over theobjects that the stylus completely overlaps as it is being dragged. Uponrelease, any object which is capable of being moved is selected andmoved to correspond to the motion of the stylus. So for example, ObjectsOBJ2-4 can all be selected using the drag method, and collectively movedacross the display. Provided they are moved to valid grid positions, thesystem will translate Objects OBJ2-4 across the display to the newposition.

Yet another object manipulation technique involves flipping the object.The flip tool allows objects containing a flip attribute to transformhorizontally or vertically. When initiated, objects that are not capableof flipping dim-out in order to let the user focus on objects that arecapable of flipping. So for example, a user may wish to flip ObjectOBJ4. Using the flip tool, provided the object is capable of beingflipped, the user can press and release on the Object OBJ4 and theobject will flip either horizontally or vertically on the display 10.For example, the object may flip or rotate 90 degrees so that the objectis now horizontal instead of vertical.

FIG. 3 shows another diagram example of the display 10. In FIG. 3, auser is drawing a line structure from a starting object to an endingobject. In this example, the starting object R1 provides the base forthe drawing line RL1. The user begins drawing the drawing line RL1 bypressing the object R1 on the display 10. The user can then drag thestylus towards other objects on the display 10. In this example, theuser drags the stylus towards object R3. As the stylus moves towards theobject R3, the drawing line RL1 extends farther from the object R1towards object R3. That is, the drawing line RL1 gets longer as itextends toward object R3.

In an exemplary embodiment, the drawing line RL1 will be temporarilydisplayed as the user drags the stylus and will not “set” and become afixed structure on the display until the user drags it to an appropriatelocation. In the present system, the drawing line RL1 will set ifspecific conditions are met. In this example, the starting and endingpoints must be of a same type. So for example, because object R1 andobject R3 are of type “R,” the drawing line RL1 will “set” and become afixed structure on the display until the user removes or erases thedrawing line RL1. It should be appreciated that once the drawing lineRL1 is set, the user can tap either object R1 or object R3 to initiatethe removal of the drawing line RL1. The user can also use the erasetool, as mentioned above, to remove the drawing line RL1.

FIG. 4 shows another diagram example of the user drawing a line on thedisplay 10. In this example, the user has pressed on the starting pointat object R1 and is attempting to draw the drawing line RL1 to connectwith the object B1. As a specific condition for connecting the drawingline RL1, in this example, the objects must be of the same type. As theobject R1 is of type “R” and the object B1 is of type “B,” the objectsare not of the same type and the user will not be able to connectdrawing line RL1 with object B1 using object R1 as a starting point.

FIG. 5 shows another diagram example of the user drawing a line on thedisplay 10. In this example, the user is attempting to connect theobject R1 with the object R4. The user can begin drawing by pressing thestylus on object R1 and then drag the stylus towards object R4. In thisexample, the path of the drawing line RL1 will be obstructed by theobject B2. So even though the user may have the stylus positioned at ornear object R4, the drawing line RL1 will be “stopped” or “truncated” atB2. In this sense, the object B2 serves as a sort of barrier that thedrawing line cannot be drawn past to reach object R4. The only way theuser can connect object R1 with object R4 is to remove the object B2from the display 10, in a manner as described above.

FIG. 6 shows yet another diagram example of the user drawing a line onthe display 10. In this example, the user is attempting to draw thedrawing line RL1 from object R1 to object R5. As such, the user hasdragged the stylus at or near object R5. However, like the example inFIG. 5, the drawing line RL1 is being blocked by an intervening object.Even though object R3 is of the same type as object R1, because the useris attempting to “bypass” the object and draw through it, the systemwill block the path of the drawing line RL1 similar to how it wasblocked in the example shown in FIG. 5. Therefore, the drawing line RL1will appear “stopped” or “truncated” at object R3. The user can clearthe path to object R5 by removing object R3, under any of the methodsdescribed above.

FIG. 7 shows an example of an application flowchart of the presentsystem. This flowchart describes the process of drawing a line betweentwo objects. The system begins in S1 where a drawing start point is set.As discussed in the description of FIGS. 2-6, the drawing start pointmay be the drawing point at a first object, such as Object R1 as shownin FIGS. 2-6.

Once the drawing start point is set, the system proceeds to S2 where itbegins drawing the line. As discussed above, the line will be drawn tocorrespond to the movement of a drawing object, such as a stylus. So forexample, the farther the stylus moves from the drawing start point, thelonger the line will appear on the display 10.

As the line is being drawn, the system advances to S3 where itdetermines if the drawing path is being obstructed. An example of anobstructed path can be found in FIGS. 5 and 6. If the path is obstructedthe system proceeds to S4 where it adjusts the drawing line, as shown,for example, in FIGS. 5 and 6. If the path is not obstructed, the systemproceeds to S5 where it determines if the drawing line is at an endpoint.

If the system determines that the line is not at an end point, thesystem goes back to S2 where it continues to draw the line. If thesystem determines that the line is at an end point, the system proceedsto S6 where it determines the start point type and the end point type.For example, the start point may be of type “R,” as mentioned above andthe end point may be of type “B.”

Once the system has determined the start and end point types, the systemproceeds to S7 where it determines if the types match. If the types donot match, the system goes back to S2 where it continues to draw theline. If the types match, the system proceeds to S8 where it sets thedrawing line at the end point. That is, in S8, the system fixes thedrawing line between the starting point and the ending point.

FIGS. 8A-B show an example of an embodiment of the present system. InFIG. 8A, the user is shown drawing a line from a starting point andextending the line away from the starting point. As can be seen in FIG.8A, the drawing line extends from the object out as far as it is draggedby the stylus.

FIG. 8B shows an example where the stylus is moved upward from FIG. 8A.As can be seen in FIG. 8B, the stylus is attempting to connect thestarting object with a “third” object. In order for the line to connectto the “third” object, it would have to bypass the intervening “second”object. As can be seen in FIG. 8B, the drawing line is adjusted or“truncated” at the “second” object to indicate that it cannot be drawnpast the “second” object in that particular direction. Although notlimited to this embodiment, the objects can be “rivets” and the linesthat are drawn connecting the objects can be “girders” or “conveyorbelts.”

FIGS. 9A-B show another example of an embodiment of the present system.In FIG. 9A, the user is drawing a “ladder” from a first object to asecond object. In this example, the drawing movement is restricted to“vertical” movement as described above. As such, as the user drags thestylus across the display, the “ladder” will only extend “up” and“down.”

FIG. 9B shows an example where a user has connected the drawing linebetween objects. Here, a “conveyor” is being drawn from a startingobject to an ending object. As the starting and ending objects are ofthe same type, the system will “set” the “conveyor” once the user hasconnected it to the ending object.

FIGS. 10A-B show examples of the virtual world editor being implementedin a game environment. In FIGS. 10A-B the virtual world that was createdby the user is superimposed along a game backdrop and the user canmanipulate the virtual world in real-time as the game plays.

FIG. 10A shows an example of a user drawing a “ladder” upward from anobject while the player characters move on the screen. FIG. 10B showsthe “ladder” extending from the object as the player characters move.The user can manipulate the components on the screen by tapping on theobjects with a stylus. This allows the user to change the environment inreal-time as the game plays so that the player character can bemanipulated by the changed environment.

While the system has been described in connection with what is presentlyconsidered to be the most practical and preferred embodiment, it is tobe understood that the system is not to be limited to the disclosedembodiment, but on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims.

1. A drawing method for drawing objects on a display of a user interfacedevice, comprising: setting a drawing start point for drawing a drawingobject; setting a drawing end point for drawing the drawing object;drawing the drawing object from the drawing start point towards thedrawing end point; determining if a path from the drawing start point tothe drawing end point for drawing the drawing object is obstructed; andpreventing the drawing object from being drawn to the drawing end pointif the path for drawing the drawing object is obstructed.
 2. The drawingmethod of claim 1, further comprising: positioning a first object of afirst type on the display; positioning a second object of a second typeon the display, the second object being at a different position than thefirst object; and positioning a third object of the first type on thedisplay, the third object being at a different position than both thefirst and second objects, wherein the first and second types aredifferent from each other.
 3. The drawing method of claim 2, wherein thefirst object represents the drawing start point and the third objectrepresents the drawing end point, and the second object is in a pathbetween the first and third object.
 4. The drawing method of claim 3,wherein the drawing object will be prevented from drawing from the firstobject to the third object if an object of a different type obstructs apath between the first object and the third object.
 5. The drawingmethod of claim 3, wherein the drawing object will not draw past thesecond object as the drawing object is being drawn toward the thirdobject.
 6. The drawing method of claim 2, wherein the drawing of thedrawing object will be completed when the drawing object draws from thefirst object to the third object and the first and third objects are ofa same type.
 7. The drawing method of claim 2, wherein the first object,the second object, and the third object are selected from a menu.
 8. Anon-transitory computer readable storage medium having computer readablecode embodied therein for drawing objects on a display of a userinterface device, comprising: setting a drawing start point for drawinga drawing object; setting a drawing end point for drawing the drawingobject; drawing the drawing object from the drawing start point towardsthe drawing end point; determining if a path from the drawing startpoint to the drawing end point for drawing the drawing object isobstructed; and preventing the drawing object from being drawn to thedrawing end point if the path for drawing the drawing object isobstructed.
 9. The non-transitory computer readable storage medium ofclaim 8, further comprising: positioning a first object of a first typeon the display; positioning a second object of a second type on thedisplay, the second object being at a different position than the firstobject; and positioning a third object of the first type on the display,the third object being at a different position than both the first andsecond objects, wherein the first and second types are different fromeach other.
 10. The non-transitory computer readable storage medium ofclaim 9, wherein the first object represents the drawing start point andthe third object represents the drawing end point, and the second objectis in a path between the first and third object.
 11. The non-transitorycomputer readable storage medium of claim 10, wherein the drawing objectwill be prevented from drawing from the first object to the third objectif an object of a different type obstructs a path between the firstobject and the third object.
 12. The non-transitory computer readablestorage medium of claim 10, wherein the drawing object will not drawpast the second object as the drawing object is being drawn toward thethird object.
 13. The non-transitory computer readable storage medium ofclaim 9, wherein the drawing of the drawing object will be completedwhen the drawing object draws from the first object to the third objectand the first and third objects are of a same type.
 14. Thenon-transitory computer readable storage medium of claim 9, wherein thefirst object, the second object, and the third object are selected froma menu.
 15. A user interface apparatus, comprising: a display fordrawing a drawing object; a memory for storing a program for drawing thedrawing object on the display; a drawing device for drawing the drawingobject on the display; and one or more processors configured to draw thedrawing object on the display and configured to: set a drawing startpoint for drawing a drawing object; set a drawing end point for drawingthe drawing object; draw the drawing object from the drawing start pointtowards the drawing end point; determine if a path from the drawingstart point to the drawing end point for drawing the drawing object isobstructed; and prevent the drawing object from being drawn to thedrawing end point if the path for drawing the drawing object isobstructed.
 16. The user interface apparatus of claim 15, wherein theone or more processors are further configured to: position a firstobject of a first type on the display; position a second object of asecond type on the display, the second object being at a differentposition than the first object; and position a third object of the firsttype on the display, the third object being at a different position thanboth the first and second objects, wherein the first and second typesare different from each other.
 17. The user interface apparatus of claim16, wherein the first object represents the drawing start point and thethird object represents the drawing end point, and the second object isin a path between the first and third object.
 18. The user interfaceapparatus of claim 17, wherein the drawing object will be prevented fromdrawing from the first object to the third object if an object of adifferent type obstructs a path between the first object and the thirdobject.
 19. The user interface apparatus of claim 17, wherein thedrawing object will not draw past the second object as the drawingobject is being drawn toward the third object.
 20. The user interfaceapparatus of claim 16, wherein the drawing of the drawing object will becompleted when the drawing object draws from the first object to thethird object and the first and third objects are of a same type.
 21. Theuser interface apparatus of claim 16, wherein the first object, thesecond object, and the third object are selected from a menu.
 22. Adrawing method for drawing objects on a display of a user interfacedevice, comprising: drawing a grid-shaped area on the display having ahorizontal and a vertical coordinate space; positioning a first objecthaving a first type in a first coordinate space in the grid-shaped area;positioning a second object having a second type in a second coordinatespace in the grid-shaped area; positioning a third object having thefirst type in a third coordinate space in the grid-shaped area; drawinga drawing object from the first coordinate space to the third coordinatespace; and preventing the drawing object from being drawn to the thirdcoordinate space if a path for drawing the drawing object is obstructed.23. The drawing method of claim 22, wherein the drawing object will notbe drawn past the second coordinate space when the first object and thesecond object are of a different type.
 24. The drawing method of claim22, wherein multiple drawing objects can be drawn in the grid-shapedarea, and after all drawing objects are drawn in the grid-shaped area,the grid-shaped area is removed from the display and the drawing objectsare superimposed on a background of a game image.
 25. The drawing methodof claim 24, wherein one or more player characters traverse the multipledrawing objects in a game using the background and the multiple drawingobjects in the game image.